package com.peng.scalatest

object ScalaTest11_Extend {

  //懒加载，只有真正用到的时候，才会对该值进行初始化操作
  lazy val name: String = {
    println("execute~~")
    "hehe"
  }


  def main(args: Array[String]): Unit = {
    name //调起name的初始化

    /**
     * 在scala中，方法调用的点号“.”是可以省略的。在scala里，函数都可以写成操作符的形式，
     * 这使得函数定义更像数学表达式。比如1 + 2这句代码实际上是1.+(2)，即值为1的对象调用了方法+并传入了参数2。
     * 通常我们都会写成前一种操作符的形式而不会刻意写成后一种函数调用的形式。而且，若参数只有一个，圆括号也是可以省略的。
     */

    println(this testMethod name) //像这样


  }

  def testMethod(string: String) = {
    string
  }


}
